package com.lance.answer.gui.answer.gk.video.tmp;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.lance.answer.gui.answer.Util;
import com.lance.answer.gui.answer.gk.DealInfoUtil;
import com.lance.answer.gui.answer.gk.video.dto.WatchVideoDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
import java.util.concurrent.LinkedBlockingDeque;

@Slf4j
public class BatchWatchVideo1010SiXiangDaodeyufalv {


    public static final String JS = "var video = document.getElementsByTagName(\"video\");if(video.length>0){ video[0].src = \"https://jvod.300hu.com/vod/product/a7d50669-f57b-4da9-8cf8-43d04372cab0/0411e189a55b41cfada876041fa7fdd7.mp4?source=2&h265=h265/18799/d7d0ab77577f4ea0bcf5bc794316045a.mp4\";}";


    public static void main(String[] args) throws Exception {

        //   int sync = 4;
        String driverPath = null;

     //    Thread.sleep(800*60*60*1);
        Map<String, Integer> map = Maps.newHashMap();
        map.put("习近平新时代中国特色社会主义思想", 15);
        map.put("思想道德修养与法律基础", 8);
      //  map.put("形势与政策", 5);
        map.put("形势与政策", 6);
        map.put("思想道德与法治", 5);
        map.put("毛泽东思想和中国特色社会主义理论体系概论", 8);
        map.put("中国近现代史纲要", 7);
        map.put("马克思主义基本原理概论", 8);

        //    String subjectName = "毛泽东思想和中国特色社会主义理论体系概论";
        //    String subjectName = "思想道德修养与法律基础";


        int sync = 1;
        //是否开启休眠-兼容服务器停服
        boolean open = false;
        final boolean delay = true;
        final int delaySecond = 1;
        //   String teacher = "刘庆";
        // String teacher = "李俊杰";

        List<String> teachers = Lists.newArrayList();
//        teachers.add("刘");
//        teachers.add("艾");
//        teachers.add("李明");
//        teachers.add("刘庆");
//        teachers.add("李俊杰");
//        teachers.add("朱晓玉");
//        teachers.add("宋柳萌");
        teachers.add("零散");

        LinkedBlockingDeque<WatchVideoDto> watchVideoQueue = new LinkedBlockingDeque<>();

        for (String subjectName : map.keySet()) {

            for (String teacher : teachers) {

                List<String> userNames = DealInfoUtil.countUserCourseInfo("libs//userCourseInfo//" + teacher + "//").get(subjectName);
                if (userNames == null) {
                    continue;
                }
                System.err.println("userName:" + userNames);

                // InputStream inputStream2 =  new FileInputStream("libs//2022User.txt");
                InputStream inputStream2 = new FileInputStream("libs//teachers//" + teacher + ".user");
                List<String> userString = IOUtils.readLines(inputStream2, "utf-8");

                Map<String, String> usernameAndPwd = Maps.newHashMap();
                for (String user : userString) {
                    String[] strs = user.split(",");
                    String userCode = strs[0];
                    String pwd = "";
                    if (strs[1].length() < 18) {
                        pwd = strs[1];
                    } else {
                        pwd = strs[1].substring(6, 14);
                        pwd = "Ouchn" + pwd;
                    }
                    usernameAndPwd.put(userCode, pwd);
                }


                for (String username : userNames) {

//              if(!Util.getVip().contains(username)){
//                  continue;
//              }
//              if(!"1965001466883".equals(username)){
//                  continue;
//              }

                    String pwd = usernameAndPwd.get(username);
                    WatchVideoDto videoDto = new WatchVideoDto();
                    videoDto.setUserName(username);
                    videoDto.setPassword(pwd);
                    videoDto.setSubjectName(subjectName);
                    //   videoDto.setSubjectCode(subjectCode);
                    videoDto.setJS(JS);
                    videoDto.setCompleteVideoSize(map.get(subjectName));
                    videoDto.setDelay(delay);
                    videoDto.setDelaySecond(delaySecond);
                    videoDto.setTeacherName(teacher);
//              if(!"2165001457239".equals(videoDto.getUserName())){
//                  continue;
//              }

                    watchVideoQueue.add(videoDto);
                }
            }
        }


        for (int i = 1; i <= sync; i++) {
            Thread answerThread = new WatchVideo1010SiXiangDaodeyufalvTask(driverPath, watchVideoQueue);
            //log.info("加载课程ID：{} 名称：{} ", openCourseId,subjectName);
            answerThread.setName("答题线程--" + i);
            answerThread.start();
        }

    }


}
